def generate_delete_statement(table_a, filter_condition=None, mode='delete'):
    """
    生成 SQL 删除语句
    
    参数:
        table_a: 目标表名
        filter_condition: 筛选条件，用于过滤要删除的数据（可选）
        mode: 删除模式，可选 'delete' 或 'truncate'
    
    返回:
        字典，包含状态和结果信息
    """
    # 参数验证
    if not table_a:
        return {"success": False, "error": "表名不能为空", "statement": None}
    
    # 检查 mode 参数是否有效
    if mode not in ['delete', 'truncate']:
        return {"success": False, "error": "mode 参数必须是 'delete' 或 'truncate'", "statement": None}
    
    # 处理 truncate 模式
    if mode == 'truncate':
        # 警告：truncate 不支持 where 条件，会删除整个表的数据
        if filter_condition:
            return {"success": True, "error": "警告: truncate 不支持筛选条件，将删除整个表的数据", "statement": f"TRUNCATE TABLE {table_a}"}
        return {"success": True, "error": None, "statement": f"TRUNCATE TABLE {table_a}"}
    
    # 处理 delete 模式
    delete_parts = []
    delete_parts.append(f"DELETE FROM {table_a}")
    
    # 添加筛选条件
    if filter_condition:
        delete_parts.append(f"WHERE {filter_condition}")
    
    # 添加分号结束语句
    delete_parts.append(";")
    # 组合完整语句
    statement = "\n".join(delete_parts)
    
    # 返回成功结果
    return {"success": True, "error": None, "statement": statement}

# 示例用法
if __name__ == "__main__":
    # 示例 1: 使用 delete 模式删除特定数据
    print('示例 1: 使用 delete 模式删除特定数据')
    result = generate_delete_statement(
        table_a="users",
        filter_condition="status = 'inactive' AND last_login < '2023-01-01'"
    )
    print(result['statement'] + "\n" if result['success'] else result['error'] + "\n")
    
    # 示例 2: 使用 truncate 模式清空表
    print('示例 2: 使用 truncate 模式清空表')
    result = generate_delete_statement(
        table_a="temp_data",
        mode="truncate"
    )
    print(result['statement'] + "\n" if result['success'] else result['error'] + "\n")
    
    # 示例 3: 错误情况 - 无效的 mode 参数
    print('示例 3: 错误情况 - 无效的 mode 参数')
    result = generate_delete_statement(
        table_a="orders",
        mode="drop"  # 无效的 mode
    )
    print(result['statement'] + "\n" if result['success'] else result['error'] + "\n")
    
    # 示例 4: 警告情况 - truncate 模式下的筛选条件
    print('示例 4: 警告情况 - truncate 模式下的筛选条件')
    result = generate_delete_statement(
        table_a="logs",
        filter_condition="log_date < '2023-01-01'",
        mode="truncate"
    )    
    print(result['statement'] + "\n" if result['success'] else result['error'] + "\n")
